#include <stdio.h>
#include <stdlib.h>

#define ElementType int
#define MaxData 100 // 哨兵
// 堆（heap）
typedef struct HeapStruct *MaxHeap;
struct HeapStruct
{
    ElementType *elem; // 用来存放数据的数组
    int size;          // 当前堆的大小
    int capacity;      // 最大容量
};

MaxHeap CreateHeap(int MaxSize)
{
    MaxHeap H = (MaxHeap)malloc(sizeof(struct HeapStruct));
    H->elem = (ElementType *)malloc((MaxSize + 1) * sizeof(ElementType)); // 分配MaxSize+1个空间是因为堆从1开始存储
    H->capacity = MaxSize;
    H->size = 0;
    H->elem[0] = MaxData; // 哨兵  为大于堆中所有可能元素的值，便于后续的比较

    return H;
}

// 最大堆的插入
void Insert(MaxHeap H, ElementType item)
{
}
